home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PLUS4 / plus4disk1.d64 / ch3.01 metron < prev    next >
Text File  |  2009-01-03  |  7KB  |  92 lines

  1. Ç*NB"1:CH3.01  METRON"
  2. Ç*SP0:LM8:RM62:PP66:PG59
  3. Ç*VP3:HL8:HR72:HD0:├16/+4: ═┼╘╥╧╬╧═┼     ÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇúÇú,,╙ECTION XX
  4. Ç*HS2:------------------------------------,,----------
  5. Ç*FT0:-----------------------,,----------
  6. Ç*FS3:(C) 1984 ┼LIZABETH ─EAL,,         Ç#
  7. ╙ECTION
  8. Ç*LN2:CN1;═┼╘╥╧╬╧═┼Ç*LN2:CN0
  9.      ┴ METRONOME IS A DEVICE ONE FINDS IN MUSIC STORES. ╔T IS INTENDED TO BE USED IN PRACTICING PLAYING MUSIC ON THE BEAT, EVENLY. ╔T CLICKS OR FLASHES A LIGHT. ╘HE CLICKING RATE CAN BE CONTROLLED. ┴ COMPUTER METRONOME CAN BE USED FOR OTHER THINGS. ╞OR INSTANCE, THERE IS NO REASON NOT TOO TURN A COMPUTER INTO A TEMPORARY METRONONE TO HELP YOU DO SOME PUSHUPS AFTER SITTING AT THE COMPUTER A BIT TOO LONG. ╫HILE WE DO THAT, WE WILL ALSO LOOK AT CODING LOOPS IN ┬ASIC, IN GREATER DETAIL, SO THAT YOU CAN REVIEW PROGRAMS WITH WHICH YOU ARE NOW FAMILIAR FROM THE POINT OF VIEW OF THE LOOPING PROCESS.
  10.  
  11. // PRG: METRONOME //
  12.  
  13. Ç*FP7
  14. ***  ╓┴╥╔┴┬╠┼╙  ***
  15.  
  16. ─    RATE OF CLICKING
  17. ╘╔   COMPUTER'S JIFFY CLOCK
  18. ╘1   CONTROLS TIMING
  19. ├    TIMING CORRECTION FOR PROCESSING
  20. ╔$   KEYBOARD INPUT
  21.  
  22. ***  ╔╬╙╘╥╒├╘╔╧╬╙  ***
  23.  
  24.      ╘HERE ARE THREE GRAPHIC CHARACTERS TO TYPE IN: IN LINE 120 IS ╚╧═┼, LINE 1800 NEEDS CURSOR RIGHT, LINE 190 NEEDS CURSOR LEFT.
  25.  
  26.      ╫HEN ╥╒╬, THE COMPUTER BEGINS CLICKING AT THE RATE OF 2 PER SECOND (120 PER MINUTE). ╘HE RATE CAN BE CHANGED BY USING THE CURSOR KEYS. ╘AP OR PUSH THEM DOWN, DEPENDING ON THE EFFECT YOU NEED. ┘OUR EARS WILL TELL YOU WHAT TO DO. ╨RESS ╤ TO QUIT.
  27.  
  28. ***  ─┼╘┴╔╠╙  ***
  29.  
  30.      ╘HE INITIAL RATE CAN BE CHANGED BY MODIFYING VALUE ─ IN LINE 110. ╔T CAN ALSO BE CHANGED WHILE THE PROGRAM IS RUNNING BY PRESSING TWO CURSOR KEYS: LEFT TO DECREASE ─, HENCE INCREASE THE RATE OF THE CLICKS. ╥IGHT TO INCREASE ─ SO  AS TO DECREASE THE RATE OF THE CLICKS.
  31.  
  32.      ╘HE COMPUTER'S INTERNAL JIFFY CLOCK IS USED. ╘HE SOUND IS PRODUCED BY USING THE BUILT-IN SOUND GENERATOR - SEE THE ╙╧╒╬─ COMMANDS IN LINES 140 AND 160. ╙╧╒╬─3 MEANS NOISE. ╘HE ╙╧╒╬─ COMMAND CAN BE USED FOR NOISE OR PLAYING TUNES. ╫E'LL MEET IT LATER ON. ┘OU CAN READ ABOUT THE DETAILS OF IT IN THE BOOKS THAT CAME WITH YOUR COMPUTER.
  33.  
  34. ***  ╠╧╧╨╙ ╔╬ ╘╚┼ ═┼╘╥╧╬╧═┼ ╨╥╧╟╥┴═ ***
  35.  
  36.      ┘OU HAVE SEEN REPETITIVE PROCESSES CODED USING LOOPS: ╞╧╥-LOOPS AND ─╧-LOOPS. ╔T MAY BE WORTHWILE TO LOOK AT LOOPS IN A BIT MORE DETAIL THIS TIME.
  37.  
  38.      ╘HERE ARE THREE NESTED LOOPS. "╬ESTED" IS A BUZZWORD MEANING ONE LOOP SITS INSIDE ANOTHER, LIKE THIS:
  39.  
  40. Ç*FP8
  41.       ---> 120
  42.      ! --> 130
  43.      !! -> 150
  44.      !!!           (THE WHOLE LOOP IS CODED
  45.      !!!           IN LINE 150, BUT IT COULD
  46.      !! -- 150     HAVE BEEN ON TWO LINES)
  47.      ! --- 170
  48.       ---- 200
  49.  
  50.      ╘HE FIRST LOOP BEGINS IN LINE 120, ENDS IN LINE 200. ╘HE SECOND LOOP BEGINS IN LINE 130, ENDS IN LINE 170. ╘HEN THE THIRD IS A TINY DELAY-LOOP IN LINE 150.
  51.  
  52.      ╘HE MIDDLE LOOP MAKES THE COMPUTER REPEAT WHATEVER IT IS DOING UNTIL IT DETECTS A KEY BEING PUSHED ON THE KEYBOARD. ╘HEN IF THE KEY IS ONE OF THE TWO CURSOR KEYS, IT EXITS THAT LOOP AND BEGINS EXECUTING THE OUTER LOOP ALL OVER WITH A NEW ─ VALUE, UNLESS A ╤-KEY WAS PUSHED, IN WHICH CASE WE END THE PROGRAM ALTOGETHER.
  53.  
  54. ***  ╠╧╧╨╙ ╔╬ ╟┼╬┼╥┴╠  ***
  55.  
  56.      ├ODING LOOPS HAS TO BE DONE FAIRLY CAREFULLY. ┘OU HAVE TO KEEP TRACK OF THEIR BOUNDS WITH PENCIL AND PAPER AS LINE NUMBERS AREN'T SHOWN. ╘HE COMPUTER KEEPS TRACK OF WHERE EACH LOOP BEGINS (WORD ─╧), SO IT KNOWS WHERE TO SKIP WHEN THE END OF A LOOP IS REACHED (WORD ╠╧╧╨). ┬UT WHILE YOU WRITE YOUR PROGRAMS USING ─╧-LOOPS, YOU DO NOT HAVE LINE NUMBERS OR STATEMENT LABELS TO MARK STARTING POINTS WITH, SO IT'S UP TO YOU TO KEEP THINGS STRAIGHT, WHICH IS NOT VERY CONVENIENT, ╔ ADMIT.
  57.  
  58.      ┘OU CAN DRAW YOURSELF COUNTER-CLOCKWISE ARROWS FROM A LINE CONTAINING A WORD ╠╧╧╨ TO A LINE CONTAINING WORD ─╧. ═ATCH THEM ON A ONE-BY-ONE BASIS: MATCH THE ╠╧╧╨ WORD TO THE CLOSEST ─╧ WORD YOU ENCOUNTER. ╘HAT WAY YOU CAN BE SURE THAT A CORRECT BUNCH OF CODE IS WHERE YOU WANT IT. ╔N THIS LOOP, OR OUTSIDE THE OTHER LOOP, OR NOT IN ANY LOOP AT ALL. ╧NCE AGAIN, THE BOOKS THAT CAME WITH YOUR COMPUTER CAN GIVE YOU MORE DETAILS ON THE CORRECT SYNTAX AND USE.
  59.  
  60.      ╠OOPS ARE POWERFUL DEVICES. ╘HEY COME IN MANY FORMS. ╘HE MOST COMMON AND USEFUL FORM IS A ╞╧╥...╬┼╪╘ LOOP WITH COUNTERS. ─╧...╠╧╧╨ IS A VARIANT OF THE ╞╧╥...╬┼╪╘ LOOP, BUT IT OFTEN HAS NO COUNTER. ╥ATHER, A CONDITION OF THE MACHINE IS TESTED FOR BEING TRUE OR NOT-TRUE. ╫HEN A CONDITION IS MET THE COMPUTER LEAVES THE LOOP TO THE CODE IMMEDIATELY FOLLOWING IT, AS WE HAVE DONE IN THE METRONOME PROGRAM. ┴ KEYWORD ┼╪╔╘ CAN ALSO BE USED TO QUIT A LOOP EARLY IF THE TEST FOR QUITTING IS SOMEPLACE IN THE MIDDLE OF THE LOOP.
  61.  
  62.      ╫HEN LOOPS ARE CODED USING COUNTERS, YOU CAN CALCULATE THE EXACT NUMBER EACH STATEMENT WITHIN A LOOP IS USED:
  63.  
  64. Ç*FP7
  65.       -- 100 ╞╧╥ ╩=1 ╘╧ 2   SETUP ONCE
  66.      !   101 ╨╥╔╬╘ ╩        WORK TWO TIMES
  67.      ! - 110  ╞╧╥ ╦=1 ╘╧ 3  SETUP TWICE, ONCE ON EACH ╩
  68.      !!  111  ╨╥╔╬╘ ╦;      WORK 2 X 3 = 6 TIMES
  69.      ! - 120  ╬┼╪╘ ╦        WORK 2 X 3 = 6 TIMES
  70.      !   121 ╨╥╔╬╘          TWO TIMES
  71.       -- 130 ╬┼╪╘ ╩         TWO TIMES
  72.  
  73.      ┘OU CAN RUN THIS TO VERIFY, OF COURSE. ┘OU CAN CHECK OTHER THINGS ABOUT LOOPS: FOR INSTANCE, HOW DOES ╬┼╪╘ ╦ OR ╬┼╪╘ ╩ FUNCTION? ╫HAT IS THE VALUE OF ╩ WHEN THE PROGRAM IS DONE? ╫HAT VALUE OF ╦ WILL CONTINUE LOOPING, AS OPPOSED TO DROPPING DOWN TO THE NEXT STATEMENT?
  74.  
  75.      ├OMMON SENSE RULES OF SKIPPING SOME CODE: IF YOU NEED TO SKIP CODE BECAUSE SOME CONDITION DOES NOT WARRANT RUNNING ALL OF IT, YOU CAN DO IT, SUBJECT TO THE RULES IN THIS DIAGRAM WHICH CAN BE SUMMARIZED THUSLY: YOU CAN'T GO INSIDE A LOOP FROM OUTSIDE OF IT. ┘OU CAN ALWAYS GET OUT, BUT TO ENTER CODE IN THE LOOP YOU MUST GO THROUGH THE SETUP PROCESS.
  76.  
  77. Ç*FP10
  78.       --> 100 ╞╧╥ ╩ = ┴ ╘╧ ┬             
  79.      !    101 ╔╞ ... ╟╧╘╧ 140  ---OK---  
  80.      !    102 ╔╞ ... ╟╧╘╧ 121  ---OK-- ! 
  81.      !    110 ╔╞ ... ╟╧╘╧ 115  -NOPE- !! 
  82.      ! -> 111 ╞╧╥ ╦ = ├ ╘╧ ─         !!! 
  83.      !!   115 ...              <----- !! 
  84.      ! -- 120 ╬┼╪╘ ╦                  !! 
  85.      !    121 ...              <------ ! 
  86.       --- 130 ╬┼╪╘ ╩                   ! 
  87.           140 ...              <-------  
  88.  
  89.      ╔T'S A GOOD IDEA TO PLAY WITH THE LOOPS AND DISCOVER WHAT MAKES THEM FUNCTION THE WAY THEY DO. ╫RITING TEST CODE, OR MODIFYING A PROGRAM YOU HAVE SEEN HELPS LEARNING WHAT MAKES THE COMPUTER DO WHAT IT DOES.
  90.  
  91.      ╧THER LOOP-RELATED KEYWORDS: ┼╪╔╘, ─╧, ─╧ ╫╚╔╠┼, ╠╧╧╨ AND ╠╧╧╨ ╒╬╘╔╠ ARE NEWCOMERS TO THE ├OMMODORE ┬ASIC. ╘HEY ARE SUBJECT TO THE SAME RULES AS IN THE ILLUSTRATION ABOVE. ┘OU MAY WISH TO EXPERIMIENT A BIT WITH THE ─╧ ╫╚╔╠┼ LOOP. ╔T IS PARTICULARILY POWERFUL. ╔T PERMITS SKIPPING A LOOP AND ALL LOOPS NESTED INSIDE IT IF THE ╫╚╔╠┼ CONDITION IS FALSE. ╘HIS SORT OF BEHAVIOUS IS NEW IN ├OMMODORE ┬ASIC. ╘O DATE, ╞╧╥...╬┼╪╘ LOOPS ALWAYS RAN AT LEAST ONCE, EVEN IF THE INDEXES IN THE LOOP MADE NO SENSE (╞╧╥ ╩=1 ╘╧ 0:╬┼╪╘ ╩).
  92.